package business;

import java.util.ArrayList;
import java.util.Date;

import persistence.model.AbstractModel;
import persistence.model.AnneeEtude;
import persistence.model.Conge;
import persistence.model.Enseignant;
import persistence.model.Formation;
import utility.Record;

/**
 * @author Nicolas
 *
 */
public class CongeBL {

	private Conge c = null;
	
	public CongeBL(){
		
	}
	
	public CongeBL(int id){
		c = (Conge) Conge.all().get(id);
	}
	
	/**
	 * @return retourne si la demande d'ajout ou de modification est valide ou non
	 */
	public boolean verifierValiditeModif(){
		//TODO
		return true;
	}
	

	/**
	 * @return retourne si la demande de suppression est valide ou non
	 */
	public boolean verifierValiditeSuppr(){
		//TODO
		return true;
	}
	
	/**
	 * @param id : identifiant du congé
	 * @param debut : date de début du congé
	 * @param fin : date de fin du congé
	 */
	public void ajouterConge(int id, String debut, String fin, int idAE) {
		c = new Conge(id, debut, fin, idAE);
		c.save();
	}
	
	
	/**
	 * @param id : identifiant du congé
	 * @param debut : date de début du congé
	 * @param fin : date de fin du congé
	 */
	public void modifierConge(int id, String debut, String fin, int idAE) {
		c = new Conge(id, debut, fin, idAE);
		c.save(id);
	}
	
	/**
	 * @param id : identifiant du congé
	 */
	public void supprimerConge(){
		c = new Conge(this.getId());
		c.delete();
		
	}
	
	/* Ensemble des getters et setters -> delegation vers la persistance */
	
	public int getId() {
		return c.getId();
	}

	public void setIdConge(int idConge) {
		c.setId(idConge);
	}

	public String getDateDebutConge() {
		return c.getDateDebutConge();
	}

	public void setDateDebutConge(String dateDebutConge) {
		c.setDateDebutConge(dateDebutConge);
	}

	public String getDateFinConge() {
		return c.getDateFinConge();
	}

	public void setDateFinConge(String dateFinConge) {
		c.setDateFinConge(dateFinConge);
	}

	public ArrayList<Record> getListeConges()
	{
		ArrayList<Record> listeConges = new ArrayList<Record>();
		for (AbstractModel f : Conge.all())
		{
			Conge congeCourant = (Conge)f;
			
			int idConge = congeCourant.getId();
			String nomConge = congeCourant.getDateDebutConge()+" - "+congeCourant.getDateFinConge();
			
			listeConges.add(new Record(idConge, nomConge));
		}
		
		return listeConges;
	}
	
	
	
}
